package jvm;

public class TestObjectDemo {

    private static final int _1MB = 1024 * 1024;

    /**
     * VM参数：-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8
     * -Xms20M 堆最小内存
     * -Xmx20M 堆最大内存
     * -Xmn10M 分配10M给新生代，剩下的10M分配给老年代
     * -XX:SurvivorRatio=8 指定新生代Eden和Survivor比例是8:1
     * -XX:+PrintGCDetails 打印gc
     */
    public static void testAllocation() {
        byte[] allocation1, allocation2, allocation3, allocation4;
        allocation1 = new byte[2 * _1MB];
        allocation2 = new byte[2 * _1MB];
        allocation3 = new byte[2 * _1MB];
        allocation4 = new byte[4 * _1MB]; // 出现一次Minor GC
    }

    public static void testPretenureSizeThreshold() {
        byte[] allocation;
        allocation = new byte[4 * _1MB]; //直接分配在老年代中
    }

    public static void main(String[] args) {
        testAllocation();
    }
}
